Я только что установил Python 3.6.1 для MacOS X Когда я пытаюсь запустить консоль (или запускать что-нибудь с Python3), выдается следующая ошибка: AttributeError: модуль enum не имеет атрибута IntFlag $ /Library/Frameworks/Python.framework/Versions/3.6/bin/python3 Не удалось импортировать модуль сайта Отслеживание (последний вызов последний): Файл "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", строка 544, вглавный() Файл "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", строка 530, в основном known_paths = addusersitepackages (известные_путь) Файл "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", строка 282, в addusersitepackages user_site = getusersitepackages () Файл "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", строка 258, в getusersitepackages user_base = getuserbase () # это также установит USER_BASE Файл "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", строка 248, в getuserbase USER_BASE = get_config_var ('база пользователей') Файл "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", строка 601, в get_config_var return get_config_vars (). get (имя) Файл "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", строка 580, в get_config_vars импортировать _osx_support Файл "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_osx_support.py", строка 4, в импорт ре Файл "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/re.py", строка 142, в класс RegexFlag (enum.IntFlag): AttributeError: модуль enum не имеет атрибута IntFlag Класс IntFlag существует в enum.py. Итак, почему выбрасывается AttributeError?
2021-01-02 08:13:14
Это потому, что ваше перечисление не является модулем перечисления стандартной библиотеки. Вероятно, у вас установлен пакет enum34. Один из способов проверить, так ли это, - проверить свойство enum .__ file__ импортное перечисление печать (перечисление .__ файл__) # стандартное расположение библиотеки должно быть примерно таким # /usr/local/lib/python3.6/enum.py Начиная с python 3.6 библиотека enum34 больше не совместима со стандартной библиотекой. Библиотека также не нужна, поэтому ее можно просто удалить. pip uninstall -y enum34 Если вам нужен код для запуска на версиях Python как <= 3.4, так и> 3.4, вы можете попробовать установить enum-compat в качестве требования. Он устанавливает enum34 только для более старых версий python без перечисления стандартной библиотеки. | Не уверен, осталась ли у вас эта проблема. У меня была аналогичная проблема, и я смог решить ее, просто отключив PYTHONPATH $ unset PYTHONPATH | Для меня эта ошибка возникла после установки компонента gcloud app-engine-python для интеграции в pycharm. Удаление модуля помогло, даже если pycharm теперь не загружается в app-engine. | Если кто-то приходит сюда из-за этой ошибки при запуске проекта стандартной среды Python 3.7 для движка приложений Google в PyCharm, то все, что вам нужно сделать, это Убедитесь, что запускаемая конфигурация предназначена для Flask, а не для конфигурации Google App Engine. Затем отключите поддержку Google App Engine в разделе Preferences >> Languages & Framework >> Google App Engine. Причина в соответствии с этой ссылкой Общая цель состоит в том, чтобы ваше приложение было полностью переносимым и работало в любой стандартной среде Python. Вы пишете стандартное приложение Python, а не приложение Python для App Engine. В рамках этого перехода вам больше не требуется использовать проприетарные API-интерфейсы и службы App Engine для основных функций вашего приложения. В настоящее время API-интерфейсы App Engine недоступны в среде выполнения Python 3.7. Я думаю, когда мы создаем проект python 3.7 в PyCharm в качестве проекта движка приложений Google, он по-прежнему пытается делать то же самое, что и для приложения python2.7. | ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: @ juanpa.arrivillaga, если вы видите этот ответ, не стесняйтесь писать свой собственный, и я удалю этот пост. @ juanpa.arrivillaga упомянул выше: Есть ли случайно в вашем рабочем каталоге файл с именем enum.py? Это была проблема, с которой я столкнулся. В то время я не знал о модуле enum на Python и назвал свой тестовый файл enum.py. Поскольку имя файла является именем модуля, возник конфликт. Дополнительная информация о модулях здесь: https://docs.python.org/2/tutorial/modules.html | Отключение «поддержки Google App Engine» в настройках pycharm устранило эту проблему для меня. | У меня сработала установка версии 1.1.8 enum34. Я смог исправить это, добавив enum34 = "== 1.1.8" в pyproject.toml. По-видимому, в версии 1.1.8 в enum34 была функция, позволяющая избежать этой ошибки, но это регрессировало в v1.1.9 +. Однако это всего лишь обходной путь. В лучшим решением было бы для пакетов использовать маркеры среды, поэтому вам вообще не нужно устанавливать enum34, если в этом нет необходимости. Источник: https://github.com/python-poetry/poetry/issues/1122 | Ответ Håken Lid помог решить мою проблему (спасибо!), В моем случае он присутствует в Python3.7, работающем с Flask в контейнере Docker (ОТ tiangolo / uwsgi-nginx-flask: python3.7-alpine3.7). В моем случае enum34 устанавливался другой библиотекой (pip install smartsheet-python-sdk). Для тех, кто сталкивается с аналогичной проблемой контейнера Docker, вот мой последний Dockerfile (вырезанный до соответствующих строк): ОТ tiangolo / uwsgi-nginx-flask: python3.7-alpine3.7 ... RUN pip install -r requirements.txt RUN pip uninstall -y enum34 ... | Если вам нужно сохранить PYTHONPATH как для python2, так и для python3, вы можете написать операторы псевдонима, чтобы установить правильный PYTHONPATH в вашем bash_profile: Жестко закодируйте переменные PYTHONPATH2 и PYTHONPATH3 в свой ~ / .bash_profile и добавьте в конец следующие псевдонимы: псевдоним python = 'экспорт PYTHONPATH = $ {PYTHONPATH2}; python' псевдоним python3 = 'экспорт PYTHONPATH = $ {PYTHONPATH3}; python3' Мой python (относится к python2), так как я чаще использую python2. | Когда у меня возникала эта проблема: AttributeError: модуль enum не имеет атрибута IntFlag просто сначала я запускаю команду: не задано PYTHONPATH а затем запустить желаемую команду и добиться в этом успеха. | Я сделал это с помощью pip install--ignore-installed enum34 После установки необходимой библиотеки обратите внимание на предупреждения во время сборки. У меня такая ошибка: использование устаревшей установки setup.py на будущее, поскольку пакет 'wheel' не установлен. ОШИБКА: pyejabberd 0.2.11 требует enum34 == 1.1.2, но у вас будет enum34 1.1.10, который несовместим . Чтобы исправить эту проблему, выполните команду: pip freeze | grep enum34. Это даст вам версию установленного enum34. Теперь удалите его с помощью pip uninstall enum34 и переустановите требуемую версию как pip install "enum34 == 1.1.20" | Если у вас возникла эта проблема при запуске тестов в PyCharm, убедитесь, что второй флажок не установлен вконфигурации. | У меня на компьютере установлены Python 2 и Python 3. По какой-то странной причине у меня в sys.path Python 3 также есть путь к каталогу библиотеки sitepackage Python2, когда вызывается модуль re. Если я запускаю Python 3 и импортирую enum и print (enum .__ file__), система не показывает этот путь Python 2 к пакетам сайтов. Итак, очень грубый и грязный прием заключается в том, чтобы напрямую изменить модуль, в который импортируется перечисление (следуйте путям трассировки), и вставьте следующий код непосредственно перед импортом перечисления: import sys для i, p в перечислении (sys.path): если "python27" в p.lower () или "python2.7" в p.lower (): sys.path.pop (i) импортное перечисление Это решило мою проблему. | Даже у меня была эта проблема при запуске python -m grpc_tools.protoc --version Пришлось установить PYTHONPATH до сайтов-пакетов и закрыть все окна командной строки, и это сработало. Надеюсь, это поможет пользователям gRPC. | У меня была эта проблема в ubuntu20.04 в jupyterlab в моем виртуальном ядре env с python3.8 и tensorflow 2.2.0. Сообщение об ошибке было Отслеживание (последний вызов последний): Файл "/usr/lib/python2.7/runpy.py", строка 174, в _run_module_as_main "__main__", fname, loader, pkg_name) Файл "/usr/lib/python2.7/runpy.py", строка 72, в _run_code код exec в run_globals Файл "/home/hu-mka/.local/lib/python2.7/site-packages/ipykernel_launcher.py", строка 15, в из ipykernel импортировать kernelapp как приложение Файл "/home/hu-mka/.local/lib/python2.7/site-packages/ipykernel/__init__.py", строка 2, в из .connect import * Файл "/home/hu-mka/.local/lib/python2.7/site-packages/ipykernel/connect.py", строка 13, в из IPython.core.profiledir импортировать ProfileDir Файл "/home/hu-mka/.local/lib/python2.7/site-packages/IPython/__init__.py", строка 48, в из .core.application импорт приложения Файл "/home/hu-mka/.local/lib/python2.7/site-packages/IPython/core/application.py", строка 23, в из приложения импорта traitlets.config.application, catch_config_error Файл "/home/hu-mka/.local/lib/python2.7/site-packages/traitlets/__init__.py", строка 1, в из .traitlets import * Файл "/home/hu-mka/.local/lib/python2.7/site-packages/traitlets/traitlets.py", строка 49, в импортное перечисление ImportError: нет модуля с именем enum Проблема заключалась в том, что символическая ссылка в / usr / bin / python указывала на python2. Решение: cd / usr / bin / sudo ln -sf python3 python Надеюсь, использование Python 2 скоро полностью прекратится. | У меня возникла эта проблема при установке библиотеки трансформаторов из HuggingFace. Это произошло из-за того, что в моей среде был установлен пакет enum34, который переопределял встроенный enum в Python. Этот пакет, вероятно, был установлен кем-то для прямой совместимости, которая больше не нужна с Python 3.6+. Решение простое: pip uninstall -y enum34 | К сожалению, ни одно из предложений не помогло мне, но после еще нескольких поисков в Google pip install aenum решил это для меня | Если у кого-то возникает эта проблема при попытке запустить ядро Jupyter из virtualenv, просто добавьте правильный PYTHONPATH в kernel.json вашего ядра virtualenv (Python 3 в примере): { "argv": [ "/usr/local/Cellar/python/3.6.5/bin/python3.6", "-м", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "Python 3 (TensorFlow)", "язык": "питон", "env": { «PYTHONPATH»: «/Users/dimitrijer/git/mlai/.venv/lib/python3.6:/Users/dimitrijer/git/mlai/.venv/lib/python3.6/lib-dynload:/usr/local/ Подвал / python / 3.6.5 / Frameworks / Python.framework / Versions / 3.6 / lib / python3.6: /Users/dimitrijer/git/mlai/.venv/lib/python3.6/site-packages " } } | Ваш ответ StackExchange.ifUsing ("редактор", function () { StackExchange.using ("externalEditor", function () { StackExchange.using ("сниппеты", function () { StackExchange.snippets.init (); }); }); }, "фрагменты кода"); StackExchange.ready (функция () { var channelOptions = { теги: "" .split (""), id: "1" }; initTagRenderer ("". split (""), "" .split (""), channelOptions); StackExchange.using ("externalEditor", function () { // Должен запускать редактор после сниппетов, если сниппеты включены if (StackExchange.settings.snippets.snippetsEnabled) { StackExchange.using ("сниппеты", function () { createEditor (); }); } else { createEditor (); } }); function createEditor () { StackExchange.prepareEditor ({ useStacksEditor: ложь, heartbeatType: 'ответ', autoActivateHeartbeat: ложь, convertImagesToLinks: правда, noModals: правда, showLowRepImageUploadWarning: true, РепутацияToPostImages: 10, bindNavPrevention: правда, постфикс: "", imageUploader: { brandingHtml: "На основе \ u003ca href = \" https: //imgur.com/ \ "\ u003e \ u003csvg class = \" svg-icon \ "width = \" 50 \ "height = \" 18 \ "viewBox = \ "0 0 50 18 \" fill = \ "none \" xmlns = \ "http: //www.w3.org/2000/svg \" \ u003e \ u003cpath d = \ "M46.1709 9.17788C46.1709 8.26454 46.2665 7.94324 47.1084 7.58816C47.4091 7.46349 47.7169 7.36433 48.0099 7.26993C48.9099 6.97997 49.672 6.73443 49.672 5.93063C49.672 5.22043 48.98324.61182 48.1414 4.61182C47.4335 4.61182 46.7256 4.91628 46.0943 5.50789C45.7307 4.9328 45.2525 4.66231 44.6595 4.66231C43.6264 4.66231 43.1481 5.28821 43.1481 6.59048V11.9512C43.1481 13.253512 43.62.62.65 13.9512C43.1481 13.253562.13962.1709 13.95125.46.96.95 / \ u003e \ u003cpath d = \ "M32.492 10.1419C32.492 12.6954 34.1182 14.0484 37.0451 14.0484C39.9723 14.0484 41.5985 12.6954 41.5985 10.1419V6.59049C41.5985 5.28821 41.1394 4.66221C 40.10613200 4.6962484.6394.66221.6532948C .5948 10.8521 38.2696 11.5455 37.0451 11.5455C35.8209 11.5455 35.4954 10.8521 35.4954 9.60062V6.59049C35.4954 5.28821 35.0173 4.66232 34.0034 4.66232C32.9703 4.66232 правило 32.492 5.28821 32.4921900 \ evenpath10 \ "clip-rule = \" evenodd \ "d = \" M25.6622 17.6335C27.8049 17.6335 29.3739 16.9402 30.2537 15.6379C30.8468 14.7755 30.9615 13.5579 30.9615 11.9512V6.59049C30.9615 290.9615 5.28821 30.4833504.6236.4.6236236.46.48332.46231 4,9497 8 28.1109 5.50789C27.499 4.86533 26.7335 4.56087 25.7005 4.56087C23.1369 4.56087 21.0134 6.57349 21.0134 9.27932C21.0134 11.9852 23.003 13.913 25.3754 13.913C26.5612 13.913 27.4607 13.410.66 1221.728.128.128.128.913 27.4607 13.410816 1221.1109 28.913.1816.1122.128.128.928.128.98 12.983C28.1301 14.4373 27.2502 15.2321 25.777 15.2321C24.8349 15.2321 24.1352 14.9821 23.5661 14.7787C23.176 14.6393 22.8472 14.5218 22.5437 14.5218C21.7977 14.5218 21.2429 15.0172428C21.7977 14.5218 21.2429 15.0123124229 17.272428C21.7977 14.5218 21.2429 15.0123124229 17.2724213 21.27329 21.27229 21.27229 16.7429 21.2429 16.7429 21.2429 21.2721.62 7.09766 26.1024 7.09766C27.2119 7.09766 28.0918 7.94324 28.0918 9.27932C28.0918 10.6321 27.2311 11.5116 26.1024 11.5116C24.9737 11.5116 24.1317 10.6491 24.1317 9.27932Z \ "/ \ u003e \ u1662.256 \ u003ec3cpath = M_FX_XXXXX_XXXXXXXXXX_XXXX 13.8962C19.3298 13.8962 19.8079 13.2535 19.8079 11.9512V8.12928C19.8079 5.82936 18.4879 4.62866 16.4027 4.62866C15.1594 4.62866 14.279 4.98375 13.3609 5.88013C12.653 5.05154 11.6581 4.62866 10.3573 4.62866C9.34336 4.62866 8.57809 4.89931 7.9466 5.5079C7.58314 4.9328 7.10506 4.66232 6.51203 4.66232C5.47873 4.66232 5.00066 5.28821 5.00066 6.59049V11.9512C5.00066 13.253562 6.59049V11.9512C5.00066 13.253562 6.50275 13.95.8962.6562.02 0232 7.58817 8.44431 6.91179 9.53458 6.91179C10.5104 6.91179 10.893 7.58817 10.893 8.94108V11.9512C10.893 13.2535 11.3711 13.8962 12.4044 13.8962C13.4375 13.8962 13.9157 13.2535 13.915.90167171180 16.951180 6.9158.408.408.408.406.951180 6.9158.408.406.95 V11.9512Z \ "/ \ u003e \ u003cpath d = \" M3.31675 6.59049C3.31675 5.28821 2.83866 4.66232 1.82471 4.66232C0.791758 4.66232 0.313354 5.28821 0.313354 6.59049V11.9512C0.313354 13.2535 0.79172462 13.89.89.89.89.89.86 3.31675 11.9512V6.59049Z \ "/> \ u003cpath d = \" M1.87209 0.400291C0.843612 0.400291 0 1.1159 0 1.98861C0 2.87869 0.822846 3.57676 1.87209 3.57676C2.90056 3.57676 3.7234 2.878 3.7234 1.98861C3.7234 1.1159 2.90056 0.400291 1.87209 0.400291Z \ "fill = \" # 1BB76E \ "/> \ u003c / svg> \ u003c / a>", contentPolicyHtml: "Вклады пользователей под лицензией \ u003ca href = \" https: //stackoverflow.com/help/licensing \ "\ u003ecc by-sa \ u003c / a \ u003e \ u003ca href = \" https://stackoverflow.com / legal / content-policy \ "> (политика содержания) \ u003c / a>", allowUrls: true }, onDemand: правда, discardSelector: ".discard-answer" , немедленноShowMarkdownHelp: true, enableTables: true, enableSnippets: true }); } }); Спасибо за ответ на Stack Overflow! Обязательно ответьте на вопрос. Предоставьте подробную информацию и поделитесь своим исследованием! Но избегайте… Просить о помощи, разъяснениях или отвечать на другие ответы. Делать заявления, основанные на мнении; подкрепите их рекомендациями или личным опытом. Чтобы узнать больше, ознакомьтесь с нашими советами по написанию отличных ответов. Черновик сохранен Черновик отклонен Зарегистрируйтесь или войдите под своим ником StackExchange.ready (функция () { StackExchange.helpers.onClickDraftSave ('# ссылка для входа'); }); Зарегистрируйтесь с помощью Google Зарегистрируйтесь через Facebook Зарегистрируйтесь, используя электронную почту и пароль Разместить Опубликовать как гость имя Эл. адрес Обязательно, но не отображается StackExchange.ready ( function () { StackExchange.openid.initPostLogin ('. New-post-login', 'https% 3a% 2f% 2fstackoverflow.com% 2fquestions% 2f43124775% 2fwhy-python-3-6-1-throws-attributeerror-module-enum-has- no-attribute-intflag% 23new-answer ',' question_page '); } ); Опубликовать как гость имя Эл. адрес Обязательно, но не отображается Разместите свой ответ Отменить Нажимая «Опубликовать ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie. Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками python python-3.x enums python-3.6 attributeerror или задайте свой вопрос.